/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Datos.DB;

import Datos.Civil;
import Datos.Persona;
import Excepciones.BuscarDatosAdministradorException;
import Excepciones.BuscarDatosCivilException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Administrador
 */
public class CivilDB {
    
public void grabarCivil(Civil cv) throws SQLException{
    grabarPersona(cv);
    grabarCivilTabla(cv);
    //grabarUsuario(cv);
    //grabarPersonaUsuario(cv);
    
}

public boolean grabarPersona(Civil cv) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        
        String query = "insert into persona(cedula, nombre, direccion, telefono) " +
                "values('"+cv.getCedula()+"', '"+cv.getNombre()+"', '" + 
                cv.getDireccion() +"', '"+cv.getTelefono() +"');";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
}
/*
public boolean grabarUsuario(Civil cv) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        
        String query = "insert into usuario(nick, clave) " +
                "values('"+cv.getUsuario().getNombreUsuario()+"', '"+cv.getUsuario().getContraseña() + "' );";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
}

private boolean grabarPersonaUsuario(Civil cv) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        
        String query = "insert into personausuario(idpersona, idusuariop) " +
                "values('"+cv.getCedula()+"', '"+cv.getUsuario().getNombreUsuario()+ "' );";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
}
*/
public boolean grabarCivilTabla(Civil cv) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        
        String query = "insert into civil(cedula) values('"+cv.getCedula()+"')";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
}


public int modificar(Civil ad) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="update persona set nombre='" + ad.getNombre() + "', direccion='" + ad.getDireccion()+ "', telefono='"+ad.getTelefono()+"'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
}


public Civil buscar(String cedula) throws SQLException, BuscarDatosCivilException {
    try{
        OperacionesBase db = new OperacionesBase();
        String query="select * from persona,civil where persona.cedula ='"+cedula+"' and persona.cedula=civil.cedula";//"select * from persona,civil where persona.cedula ='"+cedula+"' and persona.cedula=civil.cedula";
        ResultSet resultado = db.seleccion(query);
        Civil cv=new Civil();
        if (resultado!=null) {
            resultado.next();
            cv.setCedula(resultado.getString(1));
            cv.setNombre(resultado.getString(2));
            cv.setDireccion(resultado.getString(3));
            cv.setTelefono(resultado.getString(4));
        } 
        
        db.cerrarConexion();
        return cv;
     } catch (SQLException BuscarDatosCivilException) {
            System.out.println(BuscarDatosCivilException.getMessage());
            throw new BuscarDatosCivilException("Error encontrado al buscar el Civil");
            
        }  
    }

public ArrayList listar() throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select persona.cedula, persona.nombre, persona.direccion, persona.telefono from persona,civil where persona.cedula=civil.cedula ";
        ResultSet resultado = db.seleccion(query);
        Persona per=null;
        ArrayList personas=new ArrayList();
        while (resultado.next()) {
            per=new Persona();
            per.setCedula(resultado.getString(1));
            per.setNombre(resultado.getString(2));
            per.setDireccion(resultado.getString(3));
            per.setTelefono(resultado.getString(4));
            personas.add(per);
        }
        db.cerrarConexion();
        return personas;
    }

}

